home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / msdos / dos5mem.zip / HRAM.DOC < prev    next >
Text File  |  1992-11-22  |  51KB  |  1,417 lines

  1.                                                                           1
  2.  
  3.  
  4.           HRAM
  5.           Version 1.3
  6.           User's Guide
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                                                                           2
  59.  
  60.  
  61.           COPYRIGHT   
  62.  
  63.           This HRAM documentation and the software are copyrighted with all
  64.           rights reserved.  Under the copyright laws, neither the
  65.           documentation nor the software may be copied, photocopied,
  66.           reproduced, translated, or reduced to any electronic medium or
  67.           machine-readable form, in whole or in part, without the prior
  68.           written consent of Biologic, except in the manner described in
  69.           this manual.  The unregistered version of HRAM and accompanying
  70.           documentation may be freely copied and distributed.
  71.  
  72.           Copyright (C) Biologic 1990-1992
  73.  
  74.           All rights reserved.  First edition printed 1990.  Printed in the
  75.           United States.
  76.  
  77.           Software License Notice   
  78.  
  79.           Your license agreement with Biologic, which is included with the
  80.           product, specifies the permitted and prohibited uses of the
  81.           product.  Any unauthorized duplication or use of HRAM in whole or
  82.           in part, in print, or in any other storage and retrieval system
  83.           is forbidden.
  84.  
  85.           Licenses and Trademarks   
  86.  
  87.           386MAX is a registered trademark of Qualitas, Inc.  QEMM is a
  88.           registered trademark of Quarterdeck Office Systems, Inc.  MS-DOS
  89.           is a registered trademark of Microsoft Corporation.  HRAM is a
  90.           trademark of Biologic.
  91.  
  92.  
  93.           Biologic
  94.           POB 1267
  95.           Manassas VA 
  96.           22110
  97.           USA
  98.           703-368-2949  
  99.           800-736-8088 (orders only)
  100.           703-361-8251 (fax)
  101.           70033,1324   (compuserve)
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.                                                                           3
  111.  
  112.  
  113.           CONTENTS
  114.  
  115.           License Agreement and Disclaimer of Warranty  
  116.           Introduction  
  117.           Notes on Memory and Memory Addresses  
  118.           Testing Your Memory with Chkmem  
  119.           Shadow Memory  
  120.           Notes for 8088 and 80286 PCs  
  121.           Notes for 80386 PCs  
  122.           Condensed Instructions  
  123.           hramdev.sys  
  124.           hram.exe  
  125.           hram.sys  
  126.           Your Turn  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.                                                                           4
  169.  
  170.  
  171.           LICENSE AGREEMENT AND DISCLAIMER OF WARRANTY
  172.  
  173.           License agreement   
  174.  
  175.           The terms of this license agreement apply to you and to any
  176.           subsequent licensee of this HRAM software.  Biologic retains the
  177.           ownership of this copy of HRAM software.  This copy is licensed
  178.           to you for use under the following conditions.
  179.  
  180.              You may use the HRAM software on any compatible computer,
  181.              provided the HRAM software is used on only one computer and by
  182.              one user at a time.
  183.  
  184.              You may not provide use of the software in a computer service
  185.              business, network, timesharing, multiple CPU or multiple user
  186.              arrangement to users who are not individually licensed by
  187.              Biologic, except that you may designate any employee to use
  188.              such products on a one employee per license basis.
  189.  
  190.              You may not disassemble or decompile the HRAM software.
  191.  
  192.           Disclaimer of warranty   
  193.  
  194.           Biologic excludes any and all implied warranties, including
  195.           warranties of merchantability and fitness for a particular
  196.           purpose.  Biologic does not make any warranty of representation,
  197.           either express or implied, with respect to this software program,
  198.           its quality, performance, merchantability, or fitness for a
  199.           particular purpose.  Biologic shall not have any liability for
  200.           special, incidental, or consequential damages arising out of or
  201.           resulting from the use of this program.
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.                                                                           5
  226.  
  227.  
  228.           INTRODUCTION
  229.  
  230.           Description   
  231.  
  232.           HRAM is a powerful memory management program for 8088, 8086,
  233.           80286, 80386 and 80486 PCs that enhances the utilization of upper
  234.           memory (memory between 640K and 1024K).  It works in conjunction
  235.           with DOS 5 to create up to 96K of extra conventional memory and
  236.           up to 224K of upper memory for use by device drivers (such as
  237.           network drivers) and memory resident programs (TSRs).  In
  238.           addition, it provides many of the necessary memory management
  239.           features DOS 5 left out: 
  240.  
  241.              HRAM creates upper memory on 8088, 80286, 80386, and 80486 PCs
  242.              (DOS 5 creates upper memory on 80386 and 80486 PCs only.) 
  243.  
  244.              HRAM utilizes the shadow RAM capability of many chip sets to
  245.              create upper memory (the file chipset.doc contains a complete
  246.              listing of supported chip sets).  This may eliminate the need
  247.              to use the DOS 5 program, emm386.exe (or any other 80386
  248.              expanded memory manager), resulting in a speed increase of 10
  249.              to 40 percent!
  250.  
  251.              On 80386 and 80486 PCs, HRAM provides more upper memory than
  252.              DOS 5 by thoroughly searching the area between 640K and 1024K
  253.              and converting ALL unused regions to upper memory--memory that
  254.              DOS 5 often overlooks. 
  255.  
  256.              HRAM gives you an extra 64K of upper memory for program
  257.              initialization by using expanded memory for loading drivers
  258.              and TSRs--this means you'll often load programs you couldn't
  259.              load before. 
  260.  
  261.              HRAM optimizes your upper memory by  automatically determining
  262.              which order and in which memory region your drivers and TSRs
  263.              should be loaded. This one step can easily double the
  264.              utilization of your upper memory. (DOS 5 suggests that you
  265.              "experiment with different combinations and orders of
  266.              programs".  When you consider that your upper memory may
  267.              consist of several separate regions and that you probably use
  268.              up to a dozen drivers and TSRs, this process, without HRAM,
  269.              could require rebooting your PC thousands of times!)
  270.  
  271.  
  272.           Overview   
  273.  
  274.           HRAM is a set of programs that consists of: 
  275.  
  276.              hramdev.sys, a device driver that manages upper memory and can
  277.                                                                           6
  278.  
  279.              fill unused upper memory areas with expanded memory or shadow
  280.              RAM.
  281.  
  282.              hram.exe, a program that works in conjunction with the DOS
  283.              LOADHIGH command to optimally load TSRs into the upper memory
  284.              created by hramdev.sys.  hram.exe also provides a status
  285.              report of upper memory and lists the programs that have been
  286.              loaded into it.
  287.  
  288.              hram.sys, a special driver that works in conjunction with the
  289.              DOS DEVICEHIGH command to optimally load device drivers into
  290.              upper memory.
  291.  
  292.           A utility program, Chkmem, is included in the package and
  293.           provides information about the status of memory in your PC.
  294.  
  295.           Requirements
  296.  
  297.              A PC with a 8088, 8086, 80286, 80386 or 80486 microprocessor.
  298.  
  299.              IBM Personal Computer Disk Operating System (PC-DOS) or
  300.              Microsoft Disk Operating System (MS-DOS) version 5.0 or
  301.              greater.
  302.  
  303.              On 8088 and 80286 PCs, expanded memory version 4 or shadow
  304.              RAM.
  305.  
  306.           Contents of the HRAM disk   
  307.  
  308.           The following files are included in the root directory of the
  309.           distribution disk.
  310.  
  311.              hramdev.sys
  312.              hram.exe
  313.              hram.sys
  314.              chkmem.exe
  315.              read.me
  316.  
  317.           There may also be a \freeware directory which contains
  318.           unregistered versions of our other software products.
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                                                           7
  335.  
  336.  
  337.           NOTES ON MEMORY 
  338.           AND MEMORY ADDRESSES
  339.  
  340.           Conventional Memory   
  341.  
  342.           Conventional memory is located between 0K and 1024K and is the
  343.           maximum amount of memory that can be addressed by the 8088
  344.           microprocessor on which the IBM PC is based.(1)  The designers
  345.           of the original PC divided conventional memory space into a 640K
  346.           block of memory to be used by MS-DOS programs and a 384K block of
  347.           upper memory for system hardware and ROM.  The term, conventional
  348.           memory, is sometimes used to refer just to memory from 0 to 640K.
  349.  
  350.           Upper Memory   
  351.  
  352.           Upper memory is located between 640K and 1024K was originally
  353.           intended to be reserved for system hardware and ROM.  Since the
  354.           amount of free conventional memory between 0K and 640K is
  355.           critical to the performance of your PC, DOS 5 utilizes upper
  356.           memory blocks (UMBs) and provides a way of moving device drivers
  357.           and TSRs out of conventional memory and into upper memory (with
  358.           the DEVICEHIGH and LOADHIGH commands).  DOS 5 will use upper
  359.           memory only if a program which provides UMBs (like hramdev.sys or
  360.           emm386.sys) has been loaded and "dos=umb" is in your config.sys
  361.           file.
  362.  
  363.           High Memory Area   
  364.  
  365.           The high memory area (HMA) is a 64K region starting at 1024K
  366.           (1M).  Usually, part of DOS is loaded into this area to free up
  367.           low DOS memory (if "dos=high" is in your config.sys file).  This
  368.           region is not upper memory, and DEVICEHIGH and LOADHIGH do not
  369.           load programs into it.
  370.  
  371.           Expanded Memory   
  372.  
  373.           Expanded memory is "paged" memory that can exist in 8088, 80286,
  374.           and 80386(2) based PCs.  As the memory requirements of programs
  375.           grew, expanded memory was developed to support up to 32M of
  376.           memory by swapping small blocks or "pages" of extra memory into
  377.           the 1M address space of the 8088 processor so that only a few
  378.           pages are addressable at a time.  Memory pages that are not in
  379.           use are stored as deactivated pages on an expanded memory board.
  380.  
  381.           The original expanded memory specification, EMS version 3.2, was
  382.           developed jointly by Lotus, Intel, and Microsoft.  Soon after,
  383.           AST and Ashton-Tate developed a similar, but enhanced,
  384.                                         ____________________
  385.  
  386.                (1) 1K equals 1,024 bytes. 1024K equals 1,048,576 bytes or 1
  387.           megabyte.
  388.  
  389.                (2) Throughout the remainder of this documentation anything
  390.           said about 80386 PCs applies equally to 80486 PCs.
  391.                                                                           8
  392.  
  393.           specification called EEMS.  These two specifications were
  394.           replaced by EMS version 4.0, which incorporated features of both
  395.           specifications.
  396.  
  397.           Below is a summary of a few important features:
  398.  
  399.              An expanded memory page is 16K in size.
  400.  
  401.              Expanded memory that conforms to the version 3.2 specification
  402.              can be mapped only into a 64K region in upper memory called
  403.              the page frame.  EMS version 4.0 supports the mapping of
  404.              expanded memory into any location in conventional memory.
  405.  
  406.              A software control program, called an expanded memory manager,
  407.              manages the placement of memory pages, and is typically loaded
  408.              by the config.sys file when your PC is turned on or restarted.
  409.  
  410.           Extended Memory   
  411.  
  412.           Intel's newer processors, starting with the 80286, are capable of
  413.           addressing memory above 1M--extended memory.  Unfortunately, this
  414.           memory is not addressable when these processors are in a
  415.           processor state called real mode (a mode designed to maintain
  416.           compatibility with the 8088) and cannot be fully utilized when
  417.           using a real mode operating system such as MS-DOS.  
  418.  
  419.           The problem of accessing extended memory while running MS-DOS has
  420.           spawned several solutions:  
  421.  
  422.              On PCs that support extended memory, a feature of the ROM BIOS
  423.              allows programs to copy data between conventional and extended
  424.              memory.  Although programs cannot execute in extended memory,
  425.              they can use it as storage space.  Programs that take
  426.              advantage of this feature include RAM disks, print spoolers,
  427.              and 80286 expanded memory simulators.  
  428.  
  429.              Protected mode run-time environments which allow an
  430.              application program to execute in protected mode under MS-DOS.
  431.  
  432.              80386 memory managers, like VRAM/386, that use the page
  433.              mapping capability of the 80386 processor to convert extended
  434.              memory into expanded memory and provide additional
  435.              conventional memory for use by MS-DOS.  
  436.  
  437.           Memory Addresses   
  438.  
  439.           Memory addresses and ranges are typically specified using
  440.           hexadecimal (hex) numbers.  Hex numbers include the digits 0-9
  441.           and the letters A-F, giving 16 possible values for each hex
  442.           digit. 
  443.  
  444.           Conventional memory can be divided into 64 pages of 16K each.
  445.           These pages can be referred to as page 0, page 1, page 2, and so
  446.           on, or, as is the case in this manual, by their hexadecimal
  447.           segment addresses.  Using this notation, page 0 is at segment 0,
  448.                                                                           9
  449.  
  450.           page 1 is at segment 0400, page 2 is at segment 0800, etc.  The
  451.           following table lists some page numbers and their corresponding
  452.           segment address and linear address:
  453.  
  454.                             Segment      Linear
  455.                Page         Address     Address               ________________________________
  456.  
  457.                   0         0000             0K
  458.                   1         0400            16K
  459.                   2         0800            32K
  460.                   3         0c00            48K
  461.                   4         1000            64K
  462.                   5         1400            80K
  463.                   8         2000           128K
  464.                  12         3000           196K
  465.                  40         a000           640K
  466.                  44         b000           704K
  467.                  63         fc00         1,008K
  468.  
  469.                   
  470.           The first 40 pages (640K) of conventional memory are used by MS-
  471.           DOS and the other 24 pages are reserved for system hardware and
  472.           ROM.  The exact usage of the upper 384K of conventional memory
  473.           depends on the hardware configuration of your machine; typically,
  474.           several blocks of this area are not used and are simply empty
  475.           space.
  476.  
  477.           The table below lists the memory map of a typical PC:
  478.  
  479.              Address
  480.              Range        Description                             ________________________________________
  481.  
  482.              0000-9fff    low DOS memory (640K)
  483.              a000-bfff    VGA display adapter (128K)
  484.              c000-c7ff    hard disk controller (32K)
  485.              c800-cfff    unused address space (32K)
  486.              d000-dfff    expanded memory page frame (64K)    
  487.              e000-efff    unused address space (64K)
  488.              f000-ffff    ROM
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.                                                                          10
  506.  
  507.  
  508.           TESTING YOUR MEMORY WITH CHKMEM
  509.  
  510.           The Chkmem program is a memory utility which displays the types
  511.           and amounts of memory in your PC.  With it, you can determine the
  512.           current status of the upper memory area.  Chkmem can also
  513.           identify the chip set in your computer.
  514.  
  515.           Enter the command [chkmem] (don't type the brackets) to display
  516.           the amount of upper memory that can be created on your PC. 
  517.           Example output is shown below:
  518.  
  519.           Biologic Chkmem, version 1.3
  520.           copyright (c) Biologic 1990-1992. all rights reserved.
  521.  
  522.               655360 bytes conventional memory
  523.                    0 bytes extended memory
  524.               351232 bytes available XMS memory
  525.               655360 bytes expanded memory
  526.  
  527.                    0 bytes upper memory
  528.                    0 bytes upper memory blocks (UMBs) can be converted to
  529.                          upper memory 
  530.                    0 bytes expanded memory can be converted to upper memory
  531.               163840 bytes unused areas or shadow ram can be converted to   
  532.                          upper memory
  533.               163840 bytes upper memory can be created
  534.  
  535.  
  536.              If the last line in the listing, "bytes upper memory can be
  537.              created", is not 0, then HRAM can create and/or manage upper
  538.              memory on your PC.
  539.  
  540.              8088 and 80286 PCs:  If the listing shows that the only
  541.              available source of upper memory is "unused areas or shadow
  542.              RAM", as in the example above, then your computer must have a
  543.              chip set that is supported by HRAM or you must add expanded
  544.              memory to your system.  The file, chipset.doc, contains a list
  545.              of chip sets that are supported and the section, "Shadow
  546.              memory", describes how to determine which chip set you have. 
  547.              Read the section, "Notes for 8088 and 80286 PCs" for more
  548.              information on installing expanded memory.
  549.  
  550.              8088 and 80286 PCs:  If your chip set is not supported by HRAM
  551.              and only 65536 bytes (64K) of expanded memory can be converted
  552.              to upper memory, your expanded memory may not be fully
  553.              compatible with the EMS version 4.0 specification or it may
  554.              need to be configured differently.  Read the section, "Notes
  555.              for 8088 and 80286 PCs" for more information on configuring
  556.              your expanded memory.
  557.  
  558.  
  559.  
  560.  
  561.  
  562.                                                                          11
  563.  
  564.  
  565.           SHADOW MEMORY
  566.  
  567.           Most PCs are designed so that a 384K segment of memory, located
  568.           between 640K and 1024K, is reserved for shadowing ROM.  When your
  569.           PC is started, the shadow memory at ROM locations is activated
  570.           and the ROM code is copied to it.  The remaining shadow memory is
  571.           not activated and is not used.
  572.  
  573.           HRAM locates these regions of unused shadow memory, activates
  574.           them, and converts them to upper memory.  This means:
  575.  
  576.                 HRAM can create upper memory on 80286 PCs.
  577.  
  578.                 HRAM can create upper memory on 80386 PCs without using
  579.                 emm386.exe or any other expanded memory manager.  This is
  580.                 an important advantage because 80386 memory managers (like
  581.                 emm386, 386MAX, and QEMM) must switch the 80386 chip to a
  582.                 mode which causes your PC to run slower than normal.  If
  583.                 you don't need expanded memory, you can use HRAM to create
  584.                 upper memory, and your PC will run at full speed.
  585.  
  586.           Determining your chip set   
  587.  
  588.           The amount of upper memory created from shadow memory, and how it
  589.           is activated, depends on which chip set is in your PC.  Since
  590.           HRAM cannot automatically determine which chip set you have, you
  591.           must determine this yourself and specify the chip set on the
  592.           hramdev.sys command line (using the /t<chip set number> option). 
  593.  
  594.  
  595.           There are several ways to determine your chip set:
  596.  
  597.                 Look for it on the setup screen or in the documentation for
  598.                 your PC.
  599.  
  600.                 Use the [chkmem /t] command.  The chkmem program will
  601.                 attempt to identify the chip set.  It is possible that
  602.                 chkmem will not be successful. This does not mean your
  603.                 shadow memory cannot be utilized--you just need to identify
  604.                 it another way.  (Your PC should be rebooted after using
  605.                 this command).
  606.  
  607.                 Ask the manufacturer of your PC.
  608.  
  609.                 Take off the cover and look.  The chip set will consist of
  610.                 one or more chips (large or small) identified by names
  611.                 and/or numbers.  Try to match the number(s) with those
  612.                 listed in the file 'chipset.doc'.
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.                                                                          12
  620.  
  621.  
  622.           NOTES FOR 8088 AND 80286 PCS
  623.  
  624.           1. HRAM can utilize the shadow RAM capability of many chip sets
  625.              to create upper memory blocks; expanded memory is not
  626.              required.  The file, chipset.doc, contains a list of chip sets
  627.              HRAM currently supports.
  628.  
  629.           2. HRAM can also convert expanded memory to upper memory,
  630.              provided your expanded memory is hardware compatible with EMS
  631.              version 4.0.  If the Chkmem program reported that only 65536
  632.              bytes of upper memory can be created from expanded memory,
  633.              then your expanded memory is either not hardware compatible
  634.              with EMS 4 or it needs to be reconfigured.  Consult the
  635.              documentation for the board or contact your computer dealer to
  636.              make this determination (note: many memory boards are software
  637.              compatible with EMS 4 but are not fully compatible on a
  638.              hardware level). 
  639.  
  640.           3. If your expanded memory is hardware compatible with EMS 4 and
  641.              Chkmem reports that only 65536 bytes of upper memory can be
  642.              created from expanded memory, then you need to reconfigure
  643.              your expanded memory by changing the line in your config.sys
  644.              file that loads the expanded memory manager for the board. 
  645.              Run the command [chkmem /c] to display a recommended command
  646.              line for your expanded memory manager.
  647.  
  648.           4. If your expanded memory is not hardware compatible with EMS 4,
  649.              you can still create upper memory by using the hramdev /f
  650.              option.  This option will give you 64K of upper memory, but
  651.              will make your expanded memory unavailable to other programs.
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.                                                                          13
  677.  
  678.  
  679.           NOTES FOR 80386 PCS
  680.  
  681.           1. HRAM can utilize the shadow RAM capability of many chip sets
  682.              to create upper memory blocks.  If you do not need to convert
  683.              extended memory to expanded memory, the expanded memory
  684.              manager, emm386.exe, is not required.  The file, chipset.doc,
  685.              contains a list of chip sets HRAM currently supports.
  686.  
  687.           2. If HRAM does not support the shadow RAM capability of your
  688.              chip set or if you need expanded memory, the program,
  689.              emm386.exe, should be loaded in your config.sys file.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.                                                                          14
  734.  
  735.  
  736.           CONDENSED INSTRUCTIONS
  737.  
  738.           Creating Upper Memory
  739.  
  740.           Processor:  80386, 80486
  741.           From:       shadow memory
  742.           When:       HRAM supports your chip set and you do not need expanded
  743.                       memory
  744.  
  745.           1. Add the line [dos=umb] to your config.sys file (its location
  746.              in your config.sys file is not important).  
  747.  
  748.           2. Add the line [device=hramdev.sys /t<chipset>] to your
  749.              config.sys file (<chipset> is the number identifying the chip
  750.              set in your computer).  This line should be located after the
  751.              line [device=himem.sys] and near the beginning before any
  752.              other [device=] lines.
  753.  
  754.           3. Reboot your PC and run the Chkmem program.  Chkmem should
  755.              report a non-zero value for "bytes upper memory".  Enter the
  756.              command [chkmem /h] to display the size and location of the
  757.              upper memory regions in your PC.
  758.  
  759.           Processor:  80386, 80486
  760.           From:       expanded memory manager (emm386.exe)
  761.           When:       HRAM does not support your chip set or you need expanded
  762.                       memory
  763.  
  764.           1. Add a [device=] line to your config.sys file which loads your
  765.              expanded memory manager.  An expanded memory manager is a
  766.              single file which, typically, has "EMM" in its name.  If this
  767.              line already exists in your config.sys file, you may need to
  768.              change the parameters so that your expanded memory is
  769.              configured correctly.  
  770.  
  771.              DOS 5 provides an expanded memory manager, emm386.exe, for use
  772.              on 386 PCs.  You should run the [chkmem /c] command to list
  773.              the recommended command line for emm386.exe, and add this line
  774.              to your config.sys file (or modify it if it already exists).
  775.              This line should be located immediately after the line
  776.              [device=himem.sys].
  777.  
  778.           2. Add the line [dos=umb] to your config.sys file (its location
  779.              in your config.sys file is not important).  
  780.  
  781.           3. Add the line [device=hramdev.sys] to your config.sys file. 
  782.              This line should be located after the line [device=emm386.exe]
  783.              and near the beginning before any other [device=] lines.
  784.  
  785.           4. Reboot your PC and run the Chkmem program.  Chkmem should
  786.              report a non-zero value for "bytes upper memory".  Enter the
  787.              command [chkmem /h] to display the size and location of the
  788.              upper memory regions in your PC.
  789.  
  790.                                                                          15
  791.  
  792.           Processor:  8088, 80286
  793.           From:       shadow memory
  794.           When:       HRAM supports your chip set
  795.  
  796.           1. Add the line [dos=umb] to your config.sys file (its location
  797.              in your config.sys file is not important).  
  798.  
  799.           2. Add the line [device=hramdev.sys /t<chipset>] to your
  800.              config.sys file (<chipset> is the number identifying the chip
  801.              set in your computer).  This line should be located after the
  802.              line [device=himem.sys] and near the beginning before any
  803.              other [device=] lines.
  804.  
  805.           3. Reboot your PC and run the Chkmem program.  Chkmem should
  806.              report a non-zero value for "bytes upper memory".  Enter the
  807.              command [chkmem /h] to display the size and location of the
  808.              upper memory regions in your PC.
  809.  
  810.           Processor:  8088, 80286
  811.           From:       expanded memory
  812.           When:       HRAM does not support your chip set and you have EMS 4
  813.                       expanded memory in your computer.
  814.  
  815.           1. Add a [device=] line to your config.sys file which loads your
  816.              expanded memory manager.  An expanded memory manager is a
  817.              single file which, typically, has "EMM" in its name.  If this
  818.              line already exists in your config.sys file, you may need to
  819.              change the parameters so that your expanded memory is
  820.              configured correctly.  
  821.  
  822.              Run the command [chkmem /c] to list a recommended command line
  823.              for the expanded memory manager that was provided with your
  824.              memory board.  You should add this line to your config.sys
  825.              file (or modify it if it already exists).  Since expanded
  826.              memory managers are different for every board, the syntax of
  827.              this command may differ slightly from what is displayed by
  828.              [chkmem /c].  You should consult the documentation for your
  829.              memory board for information on the exact syntax of this
  830.              command.
  831.  
  832.           2. Add the line [dos=umb] to your config.sys file (its location
  833.              in your config.sys file is not important).  
  834.  
  835.           3. Add the line [device=hramdev.sys /e] to your config.sys file. 
  836.              This line should be located after the line that loads your
  837.              expanded memory manager and near the beginning before any
  838.              other [device=] lines.
  839.  
  840.           4. Reboot your PC and run the Chkmem program.  Chkmem should
  841.              report a non-zero value for "bytes upper memory".  Enter the
  842.              command [chkmem /h] to display the size and location of the
  843.              upper memory regions in your PC.
  844.  
  845.  
  846.  
  847.                                                                          16
  848.  
  849.           Optimizing upper memory
  850.  
  851.           Upper memory is utilized in two ways: (1) programs that recognize
  852.           this area will automatically take advantage of it, and (2) TSRs
  853.           and device drivers can be loaded into it with the DOS commands
  854.           DEVICEHIGH and LOADHIGH.  
  855.  
  856.           The process of loading programs high is complicated by the fact
  857.           that upper memory is a relatively small area, which may consist
  858.           of several regions of different sizes, and that, when loaded,
  859.           programs have an initialization size which may be much larger (or
  860.           smaller) than their resident size.  Loading programs in a
  861.           different order or into different memory regions can
  862.           significantly increase the number of programs you are able to
  863.           load high.  
  864.  
  865.           HRAM provides features which allow you to gain optimum use of
  866.           your upper memory: it automatically determines the resident size
  867.           and initialization size of each of your drivers and TSRs, it
  868.           calculates the best configuration for your upper memory, it
  869.           allows you to load a program into a specific region, and it
  870.           provides an extra 64K of memory for program initialization by
  871.           temporarily adding expanded memory to upper memory.
  872.  
  873.           Follow the steps below to optimize your memory:
  874.  
  875.           1. Add the /s option to the [device=hramdev.sys] line in your
  876.              config.sys file and add a new line as shown below:
  877.  
  878.              device=hramdev.sys /s
  879.              device=hram.sys on
  880.  
  881.           2. Reboot your PC.
  882.  
  883.           3. Type the command [hram /l] to list the analysis of your
  884.              drivers and TSRs.
  885.  
  886.           4. Type the command [hram /c] to list recommended commands for
  887.              loading your programs high and add these lines to your
  888.              config.sys and autoexec.bat files. 
  889.  
  890.           5. Remove the /s option from the [device=hramdev.sys] line in
  891.              your config.sys file and reboot your PC.
  892.  
  893.           6. Use the [hram /m] command to list the programs that have been
  894.              loaded into upper memory.
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.                                                                          17
  904.  
  905.  
  906.           HRAMDEV.SYS
  907.  
  908.           Command reference   
  909.  
  910.           The format of the hramdev.sys command is
  911.  
  912.           device=d:\path\hramdev.sys [options]
  913.  
  914.           [options]
  915.              specifies the optional hramdev.sys parameters described in the
  916.              following section.
  917.  
  918.           The following options can appear in the hramdev.sys command.  
  919.  
  920.           /e
  921.              Convert expanded memory to upper memory.  HRAM will fill
  922.              unused region between 640K and 1024K with expanded memory and
  923.              convert them to upper memory blocks.  Your expanded memory
  924.              must be hardware compatible with EMS 4 and be capable of being
  925.              mapped to these regions.  The command [chkmem /e] will display
  926.              a list of mappable memory segments (16K).  The page frame is
  927.              not used for upper memory (see /f option).
  928.  
  929.           /f
  930.              Use the expanded memory page frame for upper memory.  The page
  931.              frame is a 64K buffer in the upper memory area into which
  932.              expanded memory pages are mapped.  Although EMS version 4.0
  933.              supports mapping of expanded memory to areas outside the page
  934.              frame, most software programs, at a minimum, require the page
  935.              frame to be available.  This option will create an additional
  936.              64K of upper memory, but will, in most cases, prevent other
  937.              programs from utilizing expanded memory.
  938.  
  939.           /i<addressrange>
  940.              Include address range.  The memory range specified by
  941.              <addressrange> will be converted to upper memory.  It must be
  942.              above a000 (hex).  <addressrange> is specified with
  943.              hexadecimal segment addresses which must be multiples of 16K
  944.              (0000, 0400, 0800, 0c00, 1000, 1400, ...).  For example, to
  945.              include the range c000 to c800 use the parameter [/ic000-
  946.              c800].  Multiple include ranges should be separated by commas. 
  947.              For example, [/ic000-c800,e000-f000].
  948.  
  949.              If /i is used, only the memory areas with the include range(s)
  950.              will be available as upper memory.
  951.  
  952.              This option is useful only if there are mappable areas in
  953.              upper memory that should not be under the control of
  954.              hramdev.sys.  Normally, this option should not be used;
  955.              hramdev.sys will automatically convert all available memory
  956.              (excluding the page frame) into upper memory.  
  957.  
  958.           /k
  959.              Pause after loading (so you can read memory map screen).
  960.                                                                          18
  961.  
  962.           /n
  963.              No pause on error.  If hramdev.sys reports an error, it waits
  964.              for you to press a key.  This option causes hramdev.sys to
  965.              continue without waiting for a key.
  966.  
  967.           /p
  968.              Do not use expanded memory for program initialization. 
  969.              Normally, HRAM provides extra memory for use by programs
  970.              during their initialization by temporarily adding 64K of
  971.              expanded memory to upper memory. 
  972.  
  973.           /r
  974.              Use previously activated RAM.  HRAM will convert any RAM it
  975.              finds into upper memory (except a000-afffh and b000-b7ffh). 
  976.              Use this option with caution since there may be RAM present in
  977.              the upper memory area (such as a network card buffer) that
  978.              should not be converted to upper memory.  
  979.  
  980.              This option might be useful if you have shadow memory and
  981.              hramdev.sys fails to load after a warm boot.
  982.  
  983.           /s
  984.              Get size of programs.  HRAM will calculate the resident size
  985.              and initialization size of every driver and TSR that is loaded
  986.              after it and write this information to the file
  987.              "\hram0000.dat" for use by the [hram /l] command (The HRAM
  988.              status must be "on"--see "Condensed Instructions").  Programs
  989.              will not be loaded high when this option is used.
  990.  
  991.           /t<chipset number>
  992.              Use shadow memory.  HRAM will convert shadow memory to upper
  993.              memory.  Since HRAM cannot automatically determine which chip
  994.              set you have, you must specify the chip number on the
  995.              hramdev.sys command line (e.g. [hramdev.sys /t1] for the C&T
  996.              NEAT Chip set).  See the section, "Shadow Memory", for
  997.              instructions on how to determine which chip set you have.
  998.  
  999.           /x<addressrange>
  1000.              Exclude address range.  This option prevents hramdev.sys from
  1001.              using a particular range of addresses.  <addressrange> is
  1002.              specified with hexadecimal segment addresses which must be
  1003.              multiples of 16K.  For example, to exclude the range c000 to
  1004.              c800 use the parameter [/xc000-c800].  Multiple exclude ranges
  1005.              should be separated by commas.  For example, [/xc000-
  1006.              c800,e000-f000].
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.                                                                          19
  1018.  
  1019.  
  1020.           HRAM.EXE
  1021.  
  1022.           Displaying regions and programs in upper memory   
  1023.  
  1024.           The command, [hram /m], will display a status report of the upper
  1025.           memory created by hramdev.sys.  As illustrated in the following
  1026.           example, the report lists the location and size of each upper
  1027.           memory region as well as the TSRs and drivers that have been
  1028.           loaded:
  1029.  
  1030.           Biologic HRAM, version 1.3
  1031.           copyright (c) Biologic 1990-1992. all rights reserved.
  1032.  
  1033.           region  address                size
  1034.           ------  ---------  ----------------
  1035.           0       b002-b7fd    32704 ( 31.9k)
  1036.           1       c802-dfff    98272 ( 96.0k)
  1037.  
  1038.           region  address                size  program
  1039.           ------  ---------  ----------------  -------
  1040.           0       b003-b01b      400 (  0.4k)  (character device) setverxx
  1041.           0       b01d-b122     4192 (  4.1k)  (character device) con     
  1042.           0       b124-b67d    21920 ( 21.4k)  (character device) smartaar
  1043.           0       b684-b6e0     1488 (  1.5k)  c:\util\unblink.com
  1044.           0       b6e7-b7d9     3888 (  3.8k)  c:\util\calc.com
  1045.           0       b7db-b7fd      560 (  0.5k)  (avail)
  1046.           0                      128 (  0.1k)  other allocated blocks
  1047.           1       c803-cba0    14816 ( 14.5k)  (character device) ms$mouse
  1048.           1       cba7-cdcc     8800 (  8.6k)  c:\util\anarkey.com
  1049.           1       cdd3-cdfe      704 (  0.7k)  c:\util\fastkey.com
  1050.           1       ce05-ce27      560 (  0.5k)  c:\util\scrnsave.com
  1051.           1       ce29-dfff    73072 ( 71.4k)  (avail)
  1052.           1                      192 (  0.2k)  other allocated blocks
  1053.  
  1054.           expanded memory page frame located at: e000
  1055.           hram: off
  1056.  
  1057.  
  1058.           Note that each region is identified by a number, starting with 0,
  1059.           and that the report indicates into which region each TSR or
  1060.           device driver has been loaded.  The amount of available space
  1061.           remaining in each region is listed also.
  1062.  
  1063.           The command, [hram /a], will list the raw memory allocations in
  1064.           upper memory.
  1065.  
  1066.           Loading TSRs into upper memory   
  1067.  
  1068.           hram.exe, itself, does not load programs into upper memory, it
  1069.           works in conjunction with DOS to improve the function of the
  1070.           LOADHIGH command.  hram.exe provides a way to load a program into
  1071.           a specific memory region and provides an extra 64K for program
  1072.           initialization by temporarily converting expanded memory to upper
  1073.           memory.  To illustrate, suppose you wish to load a TSR program,
  1074.                                                                          20
  1075.  
  1076.           called Notepad, into upper memory.  The command you normally use
  1077.           to load it into low memory is:
  1078.  
  1079.           notepad /i
  1080.  
  1081.           The command to load it into upper memory, without using HRAM,
  1082.           would be:
  1083.  
  1084.           loadhigh notepad /i
  1085.  
  1086.           The commands to load the program into the second memory region in
  1087.           upper memory (regions are numbered starting with 0) and provide
  1088.           an additional 64K of memory would be:
  1089.  
  1090.           hram on /r1
  1091.           loadhigh notepad /i
  1092.           hram off
  1093.  
  1094.           Although the LOADHIGH command alone will load notepad into upper
  1095.           memory, it will load it into the first available upper memory
  1096.           region; the advantage to using HRAM is that it will force
  1097.           LOADHIGH to load it into a specific region.  This is an important
  1098.           feature, since in order to gain optimum use of upper memory, your
  1099.           programs should be loaded into the region recommended by HRAM
  1100.           (with the [hram /l] command).  In addition, suppose you have 100K
  1101.           of upper memory, but the notepad program requires 150K for
  1102.           initialization.  Without HRAM, there would not be enough upper
  1103.           memory and LOADHIGH would load it into low memory.  Since HRAM
  1104.           provides an additional 64K for initialization, the program would
  1105.           be successfully loaded high.
  1106.  
  1107.           The HRAM command can be executed at the DOS prompt or it can be
  1108.           used within a batch file (usually your autoexec.bat file).  When
  1109.           the HRAM command is executed without any parameters, [hram], it
  1110.           reports the current status of HRAM--on or off.
  1111.  
  1112.  
  1113.           Command reference   
  1114.  
  1115.           The format of the HRAM command is
  1116.  
  1117.           hram [on|off] [options] 
  1118.  
  1119.           [on|off]
  1120.              specifies whether HRAM should be "on" or "off".  When HRAM is
  1121.              on, programs can only be loaded into the memory region
  1122.              specified on the HRAM command line (with the /r option) and
  1123.              64K of expanded memory is temporarily converted to upper
  1124.              memory. 
  1125.  
  1126.           [options]
  1127.              specifies the optional HRAM parameters described in the
  1128.              following section.
  1129.  
  1130.           The following options can appear in the HRAM command. 
  1131.                                                                          21
  1132.  
  1133.           /?
  1134.              Display help.
  1135.  
  1136.           /7
  1137.              Increase low DOS memory size to 704K or 736K. If a upper
  1138.              memory region exists at the address a002h (use the command
  1139.              [hram /m] to display these regions), the command [hram /7]
  1140.              will add this region to the low dos memory pool and increase
  1141.              its size to 704K or 736K. The /7 option can only be used if no
  1142.              programs have been loaded into the region at a002h. Programs
  1143.              cannot be loaded high after this option has been used.
  1144.  
  1145.           /a
  1146.              List raw memory allocations in upper memory.  Use this option
  1147.              to display the memory control blocks that have been allocated
  1148.              from upper memory.
  1149.  
  1150.           /c
  1151.              List recommended config.sys and autoexec.bat files.  When the
  1152.              /s option is added to the hramdev.sys command and your PC is
  1153.              rebooted, information about the memory requirements of your
  1154.              drivers and TSRs is written to the file "\hram0000.dat".  The
  1155.              command [hram /c] analyzes this information and displays a
  1156.              list of recommended commands for your config.sys and
  1157.              autoexec.bat files.
  1158.  
  1159.           /i
  1160.              Display registration information.  This option causes hram.exe
  1161.              to list information about registering your copy of HRAM.  If
  1162.              you have not purchased a registered copy of HRAM, and you
  1163.              continue to use it after a reasonable testing period, you are
  1164.              required to register your copy.
  1165.  
  1166.           /l
  1167.              List analysis of programs.  When the /s option is added to the
  1168.              hramdev.sys command and your PC is rebooted, information about
  1169.              the memory requirements of your drivers and TSRs is written to
  1170.              the file "\hram0000.dat".  The command [hram /l] analyzes this
  1171.              information and displays the optimum load order and memory
  1172.              region for each program.
  1173.  
  1174.           /m
  1175.              List regions and programs in upper memory.  [hram /m] lists a
  1176.              status report of upper memory, including the size and location
  1177.              of each memory region and program or device driver.  Read the
  1178.              previous section, "Displaying regions and programs in upper
  1179.              memory", for more information.
  1180.  
  1181.           /n
  1182.              No pause on error.  If hram.exe reports an error, it waits for
  1183.              you to press a key.  This option causes hram.exe to continue
  1184.              without waiting for a key.
  1185.  
  1186.           /o<order>
  1187.              Set program load order.  This option is useful only if you
  1188.                                                                          22
  1189.  
  1190.              have a program which must be loaded before one or more other
  1191.              programs.  For example, to ensure that program1.exe is loaded
  1192.              before program2.exe and program3.exe, include these commands
  1193.              in your autoexec.bat file:
  1194.  
  1195.  
  1196.              hram on /o1
  1197.              program1
  1198.              hram on /o2
  1199.              program2
  1200.              program3
  1201.              hram on
  1202.  
  1203.              To ensure that program1.exe is loaded before program2.exe and
  1204.              that program2.exe is loaded before program3.exe, use these
  1205.              commands:
  1206.  
  1207.              hram on /o1
  1208.              program1
  1209.              hram on /o2
  1210.              program2
  1211.              hram on /o3
  1212.              program3
  1213.              hram on
  1214.  
  1215.              This option is valid only if the /s option is used on the
  1216.              hramdev.sys command line.  Otherwise, it is ignored.
  1217.  
  1218.           /p
  1219.              Do not temporarily convert 64K of expanded memory to upper
  1220.              memory for use during program initialization.
  1221.  
  1222.           /r<region>
  1223.              Load into memory region number <region>.  This option causes
  1224.              LOADHIGH to load one or more programs into the specified
  1225.              memory region.  For example, the following commands would load
  1226.              the programs, notepad.exe and calc.exe, into memory region 1
  1227.              (memory regions are numbered starting with 0): 
  1228.  
  1229.              hram on /r1
  1230.              loadhigh notepad
  1231.              loadhigh calc
  1232.              hram off
  1233.  
  1234.              Without this option, LOADHIGH loads programs into the first
  1235.              memory region in which they fit.
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.                                                                          23
  1246.  
  1247.           HRAM.SYS
  1248.  
  1249.           Like hram.exe, hram.sys does not load programs into upper memory,
  1250.           it works in conjunction with DOS to improve the function of the
  1251.           DEVICEHIGH command.  hram.sys provides a way to load a device
  1252.           driver into a specific memory region and provides an extra 64K
  1253.           for driver initialization by temporarily converting expanded
  1254.           memory to upper memory.  To illustrate, suppose you wish to load
  1255.           the device driver, ansi.sys, into upper memory.  The command you
  1256.           normally use to load it into low memory is:
  1257.  
  1258.           device=ansi.sys
  1259.  
  1260.           The command to load it into upper memory, without using HRAM,
  1261.           would be:
  1262.  
  1263.           devicehigh=ansi.sys
  1264.  
  1265.           The commands to load the program into the second memory region in
  1266.           upper memory (regions are numbered starting with 0) and provide
  1267.           an additional 64K of memory would be:
  1268.  
  1269.           device=hram.sys on /r1
  1270.           devicehigh=ansi.sys
  1271.           device=hram.sys off
  1272.  
  1273.  
  1274.           Command reference   
  1275.  
  1276.           The format of the hram.sys command is
  1277.  
  1278.           device=hram.sys [on|off] [options]
  1279.  
  1280.           [on|off]
  1281.              specifies whether HRAM should be "on" or "off".  When HRAM is
  1282.              on, programs can only be loaded into the memory region
  1283.              specified on the HRAM command line (with the /r option) and
  1284.              64K of expanded memory is temporarily converted to upper
  1285.              memory. 
  1286.  
  1287.           [options]
  1288.              specifies the optional HRAM parameters described in the
  1289.              following section.
  1290.  
  1291.           The following options can appear in the HRAM command. 
  1292.  
  1293.           /n
  1294.              No pause on error.  If hram.sys reports an error, it waits for
  1295.              you to press a key.  This option causes hram.sys to continue
  1296.              without waiting for a key.
  1297.  
  1298.           /o<order>
  1299.              Set program load order.  This option is useful only if you
  1300.              have a program which must be loaded before one or more other
  1301.              programs.  For example, to ensure that program1.sys is loaded
  1302.                                                                          24
  1303.  
  1304.              before program2.sys and program3.sys, include these commands
  1305.              in your config.sys file:
  1306.  
  1307.              device=hram.sys on /o1
  1308.              device=program1.sys
  1309.              device=hram.sys on /o2
  1310.              device=program2.sys
  1311.              device=program3.sys
  1312.              device=hram on
  1313.  
  1314.              This option is valid only if the /s option is used on the
  1315.              hramdev.sys command line.  Otherwise, it is ignored.
  1316.  
  1317.           /p
  1318.              Do not temporarily convert 64K of expanded memory to upper
  1319.              memory for use during program initialization.
  1320.  
  1321.           /r<region>
  1322.              Load into memory region number <region>.  This option causes
  1323.              DEVICEHIGH to load one or more programs into the specified
  1324.              memory region.  For example, the following commands would load
  1325.              the programs, notepad.sys and calc.sys, into memory region 1
  1326.              (memory regions are numbered starting with 0): 
  1327.  
  1328.              device=hram.sys on /r1
  1329.              devicehigh=notepad.sys
  1330.              devicehigh=calc.sys
  1331.              device=hram.sys off
  1332.  
  1333.              Without this option, DEVICEHIGH loads drivers into the first
  1334.              memory region in which they fit.
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.                                                                          25
  1360.  
  1361.  
  1362.           YOUR TURN
  1363.  
  1364.           We value you opinions.  Please let us know what you like and
  1365.           dislike about the HRAM program and user's guide.  We're dedicated
  1366.           to developing the most innovative and useful software available--
  1367.           and selling it at reasonable prices.  Your support helps make
  1368.           this possible.
  1369.  
  1370.           Please send all comments and suggestions to
  1371.  
  1372.           Biologic 
  1373.           POB 1267
  1374.           Manassas VA  
  1375.           22110
  1376.           USA
  1377.  
  1378.           THANK YOU.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.